'use strict';

const gulp = require('gulp')
const plumber = require('gulp-plumber')
const connect = require('gulp-connect')
const del = require('del')
const concat = require('gulp-concat')//合并文件 --合并只是放一起--压缩才会真正合并相同样式
const cssmin = require('gulp-minify-css')//压缩css文件
const rename = require('gulp-rename')//重命名
const autoprefixer = require('gulp-autoprefixer')//css前缀
const revAll = require('gulp-rev-all')//添加版本号



gulp.task('server', () => {
    console.log("server")
    connect.server({
        // host: 'localhost', //默认localhost
        port: 8088, //默认8080
        root: 'src', //当前项目主目录
        livereload: true //自动刷新
    })
})

gulp.task('reload', () => {
    gulp.src('src/*.html')
        .pipe(connect.reload())
})

gulp.task('watch', () => {
    gulp.watch('src/*.html', ['reload'])
    gulp.watch('src/css/*.css', ['reload'])
    gulp.watch('src/less/*.less', ['reload'])
    gulp.watch('src/js/*.js', ['reload'])
})



gulp.task('html', () => {
    gulp.src('src/*.html')
        .pipe(gulp.dest('dist'))
})
gulp.task('js', () => {
    gulp.src('src/js/*.js')
        .pipe(gulp.dest('dist/js'))
})

gulp.task('css', () => {
    gulp.src('src/css/*.css')
        .pipe(autoprefixer({
            browsers: ['last 4 versions'], //配置项
        }))
        .pipe(concat('main.css'))
        .pipe(cssmin())
        .pipe(rename({suffix:'.min'}))
        .pipe(revAll.revision({                 // 生成版本号
            dontRenameFile: ['.html'],          // 不给 html 文件添加版本号
            dontUpdateReference: ['.html']      // 不给文件里链接的html加版本号
        }))
        .pipe(gulp.dest('dist/css'))
})

gulp.task('less', () => {
    gulp.src('src/less/*.less')
        .pipe(gulp.dest('dist/less'))
})

gulp.task('imgs', () => {
    gulp.src('src/imgs/*')
        .pipe(gulp.dest('dist/imgs'))
})

gulp.task('fonts', () => {
    gulp.src('src/fonts/*')
        .pipe(gulp.dest('dist/fonts'))
})

gulp.task('clean', () => del(['.tmp', 'dist/*', '!dist/.git'], {dot: true}));
gulp.task('build', ['clean'], () => {
    gulp.run(['html', 'js', 'css', 'less', 'fonts', 'imgs'])
})


var testPlugin = require('./plugin/test')
gulp.task('demo', () => {
    /*let dir = gulp.src('*.md')
    // console.log(dir)
    .pipe(testPlugin())
    .pipe(gulp.dest('demo'))*/
    gulp.dest('demo')

})

gulp.task('default', ['server', 'watch'])
